<?php

class Conexao {

    // Guarda uma instância da classe
    private static $instance;
    protected static $db;

    protected static $dsn = 'mysql:host=127.0.0.1; dbname=sisdof2';
    protected static $user = 'root';
    protected static $password = '';

    // Um construtor privado; previne a criação direta do objeto
    private function __construct() {

    }

    /**
     *
     * @return Conexao
     */
    public static function Intancia() {
        if (!isset(self::$instance)) {
            $c = __CLASS__;
            self::$instance = new $c;
            self::$db = new PDO(self::$dsn, self::$user, self::$password, array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"));
        }

        return self::$instance;
    }

    // Método exemplo
    public function Db() {
        return self::$db;
    }

    // Previne que o usuário clone a instância
    public function __clone() {
        trigger_error('Cone nao é permitido.', E_USER_ERROR);
    }

    //aqui criamos um objeto de fechamento da conexão
    function __destruct() {
        self::$db = NULL;
    }

}

